package cn.xopencode.recordservice.rpc.robotroom;

import cn.xopencode.common.framework.vo.CommonResult;
import cn.xopencode.common.framework.vo.PageResult;
import cn.xopencode.recordservice.rpc.robotroom.dto.AdminRecordPageDTO;
import cn.xopencode.recordservice.rpc.robotroom.dto.RobotRoomRecordCreateDTO;
import cn.xopencode.recordservice.rpc.robotroom.dto.RobotRoomRecordPageDTO;
import cn.xopencode.recordservice.rpc.robotroom.dto.RobotRoomRecordUpdateDTO;
import cn.xopencode.recordservice.rpc.robotroom.vo.AdminRecordListVO;
import cn.xopencode.recordservice.rpc.robotroom.vo.RobotRoomRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.robotroom.vo.RobotRoomRecordPageVO;
import cn.xopencode.recordservice.rpc.robotroom.vo.RobotRoomRecordUpdateVO;

import java.util.List;

/**
 * 智能机器人班机柜间巡检记录 RPC
 */
public interface RobotRoomRecordRpc {

    /**
     * 新增智能机器人班机柜间巡检记录
     *
     * @param createDTO
     * @return
     */
    CommonResult<Integer> createRobotRoomRecord(RobotRoomRecordCreateDTO createDTO);

    /**
     * 获得智能机器人班机柜间巡检记录分页
     *
     * @param pageDTO
     * @return
     */
    CommonResult<PageResult<RobotRoomRecordPageVO>> pageRobotRoomRecord(RobotRoomRecordPageDTO pageDTO);

    /**
     * 根据记录id获取智能机器人班机柜间巡检记录详情
     * @param id
     * @return
     */
    CommonResult<RobotRoomRecordUpdateVO> getRobotRoomRecordById(String id);

    /**
     * 更新 智能机器人班机柜间巡检记录
     * @param updateDTO
     * @return
     */
    CommonResult<Integer> updateRobotRoomRecord(RobotRoomRecordUpdateDTO updateDTO);

    /**
     * 处理 智能机器人班机柜间巡检记录 中的异常，在巡检记录中只是改变状态
     * @param recordId
     * @return
     */
    CommonResult<Integer> dealRobotRoomRecordException(String recordId);

    /**
     * 获取 后台管理中巡检记录列表
     */
    CommonResult<List<AdminRecordListVO>> getAdminRecordList();

    /**
     * 后台--根据查询条件 分页获取所有的智能机器人班机柜间巡检记录
     * @param pageDTO
     * @return
     */
    CommonResult<PageResult<RobotRoomRecordAdminPageVO>> getAdminPageRobotRoomRecord(AdminRecordPageDTO pageDTO);
}
